package com.entrogy.dao;

import com.entrogy.bean.Attendance;
import com.entrogy.bean.PassRecordBean;
import com.entrogy.bean.UserEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.sql.SQLException;
import java.util.*;

/**
 * @Author 许红松
 * @date 2019/6/5 0005 下午 3:35
 */
@Repository
public interface CheckTimeMapper {

    /**
     *  获取成绩列表
     * @param map
     * @return
     */
    public List<Map<String,Object>>  getScoreList(Map<String,Object> map);
    /**
     *  按日获取考勤记录
     * @param map
     * @return
     */
     public List<Map<String,Object>> selectDay(Map<String,Object> map);

    /**
     *
     * @param map
     * @return
     */
     public Integer getAfternoonTime1(Map<String,Object> map) ;

    /**
     *
     * @param map
     * @return
     */
    public PassRecordBean getAfternoonTime2(Map<String,Object> map) ;
    /**
     *
     * @param map
     * @return
     */

     public PassRecordBean getMorningOutTime(Map<String,Object>  map) ;

    /**
     *
     * @param map
     * @return
     */
    // 下午下班时间后的第一次的刷脸 时间
     public PassRecordBean getAfternoonOutTime(Map<String,Object>  map);


    // 根据月份去判断有没有这个月的统计数据
    public int checkMonthTable(Map<String,Object>  map);


    // 根据月份创建数据表
    public void createMonthTable(Map<String,Object>  map);


    /**
     * <p>
     * Description: 获取月份的天数
     * </p>
     *
     * @param date 月份
     * @return List<String>
     */
      public List<String> getMonthDays(String date);


    /**
     * 根据月份查询 考勤打卡的数据
     * @param map
     * @return
     */
    public List<UserEntity> getPassRecordByMoth(Map<String,Object> map);


   /* public List<PassRecordBean> getInfoByThdid(String person_id, String month) ;*/


    public PassRecordBean getNightOutWork( Map<String,Object>  map);


    /**
     * 根据用户id  按月去统计一个人的异常信息
     * @param map
     * @return
     */
      public   int  getcountsByUser(Map<String,Object>  map);

    /**
     *
     * @param map
     * @return
     */
      public List<PassRecordBean> getPassRecordList(Map<String,Object>  map);

      public void checkClockCount(PassRecordBean passRecordBean,Map<String,Object>  map);

    /**
     * 新增
     * @param map
     * @return
     */
    public int  insertpass(Map<String,Object>  map);

    /**
     *   查询考勤人员
     * @param map
     * @return
     */
    public List<Map<String,Object>> getPeopleList(Map<String,Object>  map);
    /**
     *  查询 某人在第一次上班打卡基点之前是否有打卡次数 如果有视为正常上班打卡
     * @param map
     * @return
     */
    public Integer getmorningTimes(Map<String,Object> map) ;

    /**
     *  查询 某人在第一次上班打卡基点之前是否有打卡次数 如果没有有视为迟到上班打卡
     *   如果没有视为早班为早退 如果有视为迟到上班打卡（9-12）
     * @param map
     * @return
     */
   // public Integer getmorningTime2(Map<String,Object> map);


    /**
     *    查询某人在第一次下班 到第二次上班之前是否有考勤打卡  如果没有
     * @param map
     * @return
     */
  //  public Integer getmorningTime2(Map<String,Object> map);

    /**
     *  根据条件查询考勤信息
     * @param map
     * @return
     */
  public  List<Attendance> getAttendByType(Map<String,Object> map);

    /**
     * 修改信息
     * @param map
     * @return
     */
  int   UpdateAttendByType(Map<String,Object> map);

    /**
     * 删除某一条数据
     * @param map
     * @return
     */
  int deleteAttendByType(Map<String,Object> map);

    /**
     * 获取某人某个时间段的数据
     * @param map
     * @return
     */
    List<Map<String,Object>>  getpassRecords(Map<String,Object> map);

    /**
     * 查询次昂区
     * @param map
     * @param map
     * @return
     */
    List<Map<String,Object>> getLeaveRecordList(Map<String,Object> map);

    /**
     *   查询当天数据
     * @param map
     * @return
     */
    List<Map<String,Object>> selectByPersonId(Map<String,Object> map);
}
